
package Datos;

import Negocio.Lavanderia;
import Negocio.Prenda;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;


public class LavanderiaDB {
public boolean grabar(Lavanderia lavanderia) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into lavanderia(ingreso_fecha, id_prenda) values('"+lavanderia.getFecha()+ "', '"+lavanderia.getPrenda().getCodigo()+")";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    } 
 
 public Lavanderia buscar(int id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from lavanderia where id =" + id;        
        ResultSet resultado = db.seleccion(query);
        Lavanderia lavanderia=null;
        Prenda prenda=null;
        if (resultado!=null) {
            resultado.next();
            lavanderia = new Lavanderia();
            prenda = new Prenda();
            lavanderia.setId(resultado.getInt("id"));           
            lavanderia.setFecha(resultado.getString("nombre"));
            prenda.setCodigo(resultado.getInt("id_prenda"));
           
            lavanderia.setPrenda(prenda);
        } 
        db.cerrarConexion();
        return lavanderia;
        
    }
 
    public ArrayList listar() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from lavanderia ";
        ResultSet resultado = db.seleccion(query);
        Lavanderia lavanderia=null;
        Prenda prenda=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            lavanderia.setId(resultado.getInt(3));
            lavanderia.setFecha(resultado.getString(1));
            prenda.setCodigo(resultado.getInt(2));            
            lavanderia.setPrenda(prenda);
            todos.add(lavanderia);
        }
        db.cerrarConexion();
        return todos;
    }  
    
    

    public ArrayList listarRopaEnLavanderia(String cedula) throws SQLException {

        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarprendalavanderia('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Lavanderia lavan=null;
        Prenda prenda=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            lavan = new Lavanderia();
            prenda = new Prenda();
            prenda.setCodigo(resultado.getInt(1));
            prenda.buscar();
            lavan.setPrenda(prenda);
            lavan.setFecha(resultado.getString(3));
            lavan.setRestantes(resultado.getString(4));
            todos.add(lavan);
        } 
        db.cerrarConexion();
        return todos;        
    }
}